/*
 * ============================================
 * Integer literals
 * ============================================
 */

fn main() {
  0;
  0___0;
  123;
  0usize;
  123i32;
  123u32;
  123_u32;
  0xff_u8;
  0o70_i16;
  0b1111_1111_1001_0000_i32;
  1u128;
}

/*
 * ============================================
 * Floating-point literals
 * ============================================
 */

fn main() {
  123.123;
  2.;
  123.0f64;
  0.1f64;
  0.1f32;
  12E+99_f64;
}

/*
 * ============================================
 * String literals
 * ============================================
 */

fn main() {
  "";
  "abc";
  b"foo\nbar";
  "foo\
      bar";
  "\"foo\"";
  "/* foo bar */ foo bar";
  "foo\x42\x43bar";
  "foo \x42  \x43 bar";
}

/*
 * ============================================
 * Raw string literals
 * ============================================
 */

fn main() {
  r#"abc"#; r##"ok"##;
  r##"foo #"# bar"##;
  r###"foo ##"## bar"###;
  r######"foo ##### bar"######;
}

/*
 * ============================================
 * Raw byte string literals
 * ============================================
 */

fn main() {
  br#"abc"#;
  br##"abc"##;
}

/*
 * ============================================
 * Character literals
 * ============================================
 */

fn main() {
  'a';
  '\'';
  '\0';
  b'x';
  '\t';
  '\xff';
  '\\';
}

/*
 * ============================================
 * Boolean literals
 * ============================================
 */

fn main() {
  true;
  false;
}
